Secrets ManagerとParameter Storeの違いについてまとめてみた
はじめに
こんにちは!AWS事業本部コンサルティング部の和田響です。
この記事ではSecrets ManagerとAWS Systems Manager Parameter Storeという似て非なる2つのサービスについてまとめてみました。
それぞれのユースケースについて理解していただければ幸いです。
先にまとめ
ざっくりと両者の違いを整理しました。(2024.2.1時点)
Secrets Manager | Parameter Store | |
---|---|---|
暗号化 | 可能(KMS) | 可能(KMS) |
パラメータ(シークレット)ごとの料金 | 0.40USD/月 | 無料(Standard) 0.05 USD(Advanced) |
API使用料金 | 1 万回ごとに 0.05USD | 無料(Standard) 1 万回ごとに 0.05 USD(Advanced) |
自動ローテーション | 可 | 不可 |
アクセス制御 | IAMで可能 | IAMで可能 |
Secrets Manager
Secrets Manager とは
AWS Secrets Manager とは
AWS Secrets Manager は、アプリケーション、サービス、および IT リソースへのアクセスを管理するのに役立ちます。
これだけではよくわからないと思うので、特徴について整理します。
Secrets Manager の機能
シークレットの保存と管理
Secrets Manager は、セキュリティが重要な情報を暗号化して保存し、必要に応じてアクセスを提供します。AWS KMS(Key Management Service)を使用してシークレットを暗号化することで、データの安全性を確保します。
自動ローテーション
シークレットを定期的に変更することはセキュリティのベストプラクティスです。Secrets Manager は、特定のスケジュールに基づいてシークレットを自動的にローテーション(更新)する機能を提供します。これにより、セキュリティリスクを低減し、シークレットの管理を自動化できます。
バージョン管理
シークレットの変更履歴を追跡し、以前のバージョンのシークレットにアクセスすることができます。これにより、変更が原因で問題が発生した場合に、簡単に以前の状態に戻すことが可能です。
アクセス制御
AWS Identity and Access Management (IAM) と連携して、シークレットへのアクセス権限を細かく制御できます。これにより、シークレットへのアクセスを必要なユーザーやサービスに限定することができます。
監査とモニタリング
AWS CloudTrail と統合することで、シークレットへのアクセスや変更を監視し、ログを記録できます。これにより、コンプライアンス要件を満たすための監査証跡を確保できます。
クロスアカウントアクセス
Secrets Manager は、AWS アカウント間でシークレットを共有する機能も提供します。これにより、複数のアカウントが同じシークレットを使用する場合に、それらを一元的に管理できます。
Secrets Manager の料金
Secrets Managerの課金要素は以下の二つです。
- シークレットあたり 0.40USD/月
- 10,000 件の API コールあたり0.05USD
Parameter Store
Parameter Store とは
Parameter Store とは
AWS Systems Manager の一機能である Parameter Store は、設定データ管理と機密管理のための安全な階層型ストレージを提供します。パスワード、データベース文字列、Amazon Machine Image (AMI) ID、ライセンスコードなどのデータをパラメータ値として保存することができます。値はプレーンテキストまたは暗号化されたデータとして保存できます。パラメータの作成時に指定した一意の名前を使用して、スクリプト、コマンド、SSM ドキュメント、設定およびオートメーションワークフローの Systems Manager パラメータを参照できます。
Parameter Store の機能
パラメータの保存と階層化
パラメータストアでは、構成データや秘密情報をパラメータとして保存できます。これらのパラメータは階層的に整理することができ、例えば /application/production/database/password
のようなパスを使用して整理されます。
セキュアな情報の暗号化
機密性の高い情報は、AWS Key Management Service (KMS) を使用して暗号化されます。これにより、パスワードやデータベース接続文字列などの秘密情報が保護されます。
バージョン管理
パラメータの各変更をバージョンとして保存します。これにより、過去のバージョンに簡単に戻すことができ、変更管理が容易になります。
アクセス制御
AWS Identity and Access Management (IAM) との統合により、個々のパラメータへのアクセスを制御できます。特定のユーザーやロールがパラメータにアクセスできるように設定することが可能です。
監査とモニタリング
AWS CloudTrail との統合により、パラメータストアへのアクセスやパラメータの変更に関する監査ログを取得できます。これにより、コンプライアンスとセキュリティの監視が強化されます。
Parameter Store の料金
パラメーター保持の料金
料金 | |
---|---|
Standard | 無料 |
Advanced | 1つ当たり 0.05 USD/1ヶ月 |
API使用の料金
料金 | |
---|---|
Standard | 無料 |
Advanced | 1 万回ごとに 0.05 USD |
※スループットの上限を緩和すると、AdvancedだけではなくStandardのパラメーターに対する操作も課金対象となります。
Advancedパラメータについては以下の記事を参照ください!
両者の比較
Secrets Manager | Parameter Store | |
---|---|---|
暗号化 | 可能(KMS) | 可能(KMS) |
パラメータ(シークレット)ごとの料金 | 0.40USD/月 | 無料(Standard) 0.05 USD(Advanced) |
API使用料金 | 1 万回ごとに 0.05USD | 無料(Standard) 1 万回ごとに 0.05 USD(Advanced) |
自動ローテーション | 可 | 不可 |
アクセス制御 | IAMで可能 | IAMで可能 |
ユースケース
Advanced Parameterの登場により、Secrets ManagerとParameter Storeのどっちを使ったら良いかは、暗号化必須の場合は基本的に「自動ローテーションするかしないか」で考えることになりそうです。
自動ローテーションする場合はSecrets Managerを使用し、自動ローテーションしない場合は料金の低いParameter Storeを利用を検討しましょう。
最後に
今回は「Secrets ManagerとParameter Storeの違い」について記載しました。
どなたかの参考になれば幸いです。